package com.taxshare.purchaser.view.dto;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.math.BigDecimal;

/**
 * @ClassName: InvoiceListVO
 * @Description: 转换底账同步发票信息
 * @author: luozhongyi
 * @date: 2021/4/6 10:31
 */
@Data
public class InvoiceListDTO {

    /**
     * 发票类型
     */
    @JSONField(name = "InvoiceType")
    private String invoiceType;
    /**
     * 发票代码
     */
    @JSONField(name = "InvoiceCode")
    private String invoiceCode;

    /**
     * 发票号码
     */
    @JSONField(name = "InvoiceNumber")
    private String invoiceNo;

    /**
     * 开票日期
     */
    @JSONField(name = "BillingDate")
    private String invoiceDate;

    /**
     * 购方名称
     */
    @JSONField(name = "PurchaserName")
    private String purchaserName;
    /**
     * 购方税号
     */
    @JSONField(name = "PurchaserTaxNo")
    private String purchaserTaxno;

    /**
     * 销方名称
     */
    @JSONField(name = "SalesTaxName")
    private String sellerName;

    /**
     * 销方税号
     */
    @JSONField(name = "SalesTaxNo")
    private String sellerTaxno;

    /**
     * 金额
     */
    @JSONField(name = "TotalAmount")
    private BigDecimal amoutWithTax;

    /**
     * 税额
     */
    @JSONField(name = "TotalTax")
    private BigDecimal taxAmout;

    /**
     * 有效税额
     */
    @JSONField(name = "validTax")
    private BigDecimal validTax;

    /**
     * 认证日期
     */
    @JSONField(name = "DeductibleDate")
    private String authDate;

    /**
     * 认证属期
     */
    @JSONField(name = "DeductiblePeriod")
    private String authPeriod;

    /**
     * 认证模式(已认证时不为空 1-勾选抵扣，2-退税，4-不抵扣勾选)
     */
    @JSONField(name = "DeductibleType")
    private String authMode;

    /**
     * 认证状态 (0-未认证，1-已认证)
     */
    @JSONField(name = "Deductible")
    private String authState;

    /**
     * 发票状态 (0-正常，1-作废，2-红冲，3-失控，4-异常)
     */
    @JSONField(name = "state")
    private String invoiceState;

    /**
     * 管理状态 0-正常，1-非正常
     */
    @JSONField(name = "managementStatus")
    private String managementState;

    /**
     * 异常类别 0-发票状态异常 1-用途变更 2-管理状态异常
     */
    @JSONField(name = "abnormalType")
    private String abnormalType;

    /**
     * 认证结果
     */
    @JSONField(name = "DeductibleResult")
    private String authResult;
}
